上一章,有提到 MVC 架構,而Rails 貼心的幫你準備了引導人員 (Route) ,我們今天好好地來細說他的工作內容吧!
先來介紹一下他的工作環境吧!
在開啟一個新專案時,如果你是使用 VS code 你可以在左邊的檔案夾中找到 config/routes.rb
。
但要快速成為資深礦工,這樣的做法太慢了!
你可以使用 command + P
並打 Routes ,就會快速找到他。
其他的檔案也可以使用上面的作法。
進到這個檔案裡,會長這樣:
接下來,你就可以在這裡面寫一些你想要的指引。
Route 說穿了,就是整個網站對外公開的網站路徑對照表,當使用者連上你的網站的時候,Rails 會解析使用者所輸入的網址及參數,再根據解析的結果,去找到該負責處理的單位(哪個 Controller 跟 Action)。
顯示路徑有兩種方法:
http://localhost:3000/rails/info/routes
。$ rails routes # 列出所有路徑
$ rails routes -c posts # 搜尋路徑中特定 Controller
設置路徑的方式有很多種,我們先從基本的開始
假設今天有一個網址長這樣 https://example.com/posts/225
Rails 會根據 routes.rb 的檔案內容,進而去分析網址後面的/posts/225
要交給誰處理,假設檔案內容長這樣:
Rails.application.routes.draw do
get "/posts", to: "posts#index"
get "/posts/:id", to: "posts#show"
end
根據檔案內容,翻譯出來的意思會是這樣的:
使用者輸入 /posts 後,它會交由 PostsController 上的 index 方法去處裡。
使用者輸入 /posts/225 後,它會轉由 PostsController 上的 show 方法,並且把 225 當做參數(:id)傳給 Controller
製作路徑除了上面介紹的方法外,其實還有更方便的方法,但是在介紹之前,你可能需要知道 RESTful。
REST 是一種軟體架構風格,目的是幫助在世界各地不同軟體、程式在網際網路中能夠互相傳遞訊息。每一個網頁都可視為一個資源(resource)提供使用者使用,而你可以透過 URL(Uniform Resource Locator),也就是這些資源的地址,來取得這些資源並在你的瀏覽器上使用,而符合 REST 風格的網站架構可以稱為 RESTful。
符合REST設計風格,可以從以下三個方面資源進行定義:
對資源進行操作,常見的有以下幾種:
Rails 也是依照 RESTful 去設計的,這樣設計可讓網址變得更直觀,使開發上更加的輕鬆。
參考資料: